package frsf.cidisi.exercise.tpidemia.search;

import frsf.cidisi.faia.solver.search.IStepCostFunction;
import frsf.cidisi.faia.solver.search.NTree;
import frsf.cidisi.exercise.tpidemia.search.Arqueologo;
import frsf.cidisi.exercise.tpidemia.search.ArqueologoState;
import frsf.cidisi.faia.solver.search.IStepCostFunction;

import frsf.cidisi.faia.solver.search.NTree;

public class CostFunction implements IStepCostFunction {

    public double calculateCost(NTree node) {
        
       if(node.getAction().toString().equals("Tomar Tesoro"))
       	{
    	   return 0;
    	   
       	}
       else
       	   {
    	   	NTree padre=node.getParent();
    	   	ArqueologoState nodoPadre;
    	    ArqueologoState estadoActual=(ArqueologoState)node.getAgentState();
    	   
    	   	if(padre==null){
    	   		  return 0;
    	   		}
    	   	else
    	   		{
    	   		nodoPadre=(ArqueologoState)padre.getAgentState();
    	   		int distancia=estadoActual.calcularDistancia(nodoPadre.getPosicion(),estadoActual.getPosicion());
//    	   		if(nodoPadre.getVisitadas1().contains(estadoActual.getPosicion()))
//    	   			return 500;
    	   		if(distancia>0){
    	   			return distancia;
    	   		}
    	   		else
    	   			return 0;
    	   		}
       	   }
    }
}
